package com.erp.erp_servers.money;

import com.erp.erp_entitys.money.entity.PaymentDetailEntity;
import com.erp.erp_entitys.money.req.PaymentShipmentAmountStatisticsReq;
import com.erp.erp_entitys.money.req.PaymentStatistics1Req;
import com.erp.erp_entitys.money.req.purchasePaymentStatisticsReq;
import com.erp.erp_entitys.money.rsp.PaymentShipmentAmountStatisticsRsp;
import com.erp.erp_entitys.money.rsp.PaymentStatistics1Rsp;
import com.erp.erp_entitys.money.rsp.purchasePaymentStatisticsRes;

import java.util.List;

/**
 * @ClassName : IPaymentDetailService
 * @Description : 资金管理-付款明细接口
 * @Author : lst
 * @Date: 2020-12-28 16:21
 */
public interface IPaymentDetailService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    PaymentDetailEntity queryById(Integer id);



    /**
     * 通过实体作为筛选条件查询
     *
     * @param paymentDetail 实例对象
     * @return 对象列表
     */
    List<PaymentDetailEntity> queryAll(PaymentDetailEntity paymentDetail);

    /**
     * 新增数据
     *
     * @param paymentDetail 实例对象
     * @return 影响行数
     */
    int insert(PaymentDetailEntity paymentDetail);

    /**
     * 详情批量新增
     * @param list 新增对象集合
     * @return 影响行数
     */
    int addList(List<PaymentDetailEntity> list);

    /**
     * 修改数据
     *
     * @param paymentDetail 实例对象
     * @return 影响行数
     */
    int update(PaymentDetailEntity paymentDetail);



    //*********************付款统计*************************************
    /**
     * 付款情况统计
     * @param req
     * @return
     */
    List<PaymentStatistics1Rsp> paymentStatistics1List(PaymentStatistics1Req req);

    /**
     * 采购预付款统计
     * @param req 实例对象
     * @return 采购预付款统计
     */
    List<PaymentStatistics1Rsp> getStatisticsPurchasePrepayments(PaymentStatistics1Req req);


    /**
     * 出货金额统计-集合
     * @param req
     * @return
     */
    List<PaymentShipmentAmountStatisticsRsp> paymentShipmentAmountList(PaymentShipmentAmountStatisticsReq req);


    /**
     * 采购付款统计--集合
     */
    List<purchasePaymentStatisticsRes> purchasePaymentStatisticsResList(purchasePaymentStatisticsReq req);

}
